Integrated Virtual Hub Chip

ABSTRACT

An apparatus that includes a serial port configured to interface with a separate host, one serial interface engine (SIE) connected to the serial port, and at least a first interface unit and a second interface unit connected to the one serial interface engine. In one embodiment, the apparatus includes a virtual hub comprising a firmware unit configured to emulate a hub having multiple ports. In another alternative embodiment, the apparatus is a Universal Serial Bus (USB) peripheral and the serial port is a Universal Serial Bus port. In another alternative embodiment, apparatus is housed within a keyboard.

The present application is also a continuation in part of the non-provisional filed application entitled Integrated Virtual Hub Chip, filed on Oct. 4, 2002, Ser. No. 10/065,333, which is also incorporated herein by reference.

COPYRIGHT NOTICE/PERMISSION

A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.

FIELD

The present invention relates generally to serial bus hubs, and more specifically to an improved configuration of the same.

BACKGROUND

Keyboards lend themselves as extension bases for other functions. For example, U.S. Pat. No. 5,841,424 describes a keyboard that has multiple extension bases with serial ports.

FIG. 1 shows an overview of a generic USB keyboard with additional extensions. Keyboard 100 contains a USB hub 110 with USB interface 105, which is connected through USB link 104 to a port 103 on the host computer system 101. USB hub 110 controls, in this example, a keyboard controller 131. The controller 131 has a keyboard matrix 132 and its own USB port 130, which connects to USB port 112 of hub 110. A card reader 120 is also present, with a media port 121. Card reader 120 has a port 113 that also connects to the USB hub 110 via USB port 111.

The approach shown in FIG. 1 results in a relatively expensive product. It requires at least three serial interface engines (SIEs), three processors or controllers (for each of the entities of the hub, the card controller, and the keyboard controller), and extra logic to handle general functions.

What is needed is an integrated, more cost-effective method that allows multiple, multi-pin devices to be connected via one USB line to a host computer, thus reducing the need for expensive multiple internal USB connections.

SUMMARY

An embodiment of the present invention provides an apparatus that includes a serial port configured to interface with a separate host, one serial interface engine (SIE) connected to the serial port, and at least a first interface unit and a second interface unit connected to the one serial interface engine. In one embodiment, the apparatus includes a virtual hub comprising a firmware unit configured to emulate a hub having multiple ports. In another alternative embodiment, the apparatus is a Universal Serial Bus (USB) peripheral and the serial port is a Universal Serial Bus port. In another alternative embodiment, apparatus is housed within a keyboard.

Other features and advantages of embodiments of the present invention will be apparent from the accompanying drawings, and from the detailed description, that follows below.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention may be best understood by referring to the following description and accompanying drawings that are used to illustrate embodiments of the invention. In the drawings:

FIG. 1 illustrates a prior art USB keyboard with additional extensions;

FIG. 2 illustrates block level illustration of the USB port and adjoining functionality, according to one embodiment;

FIG. 3 illustrates an overview block diagram, according to one embodiment;

FIG. 4 illustrates flow diagram of the functional process, according to one embodiment;

FIG. 5 illustrates block level illustration of the USB port and adjoining functionality, according to an alternative embodiment; and

FIG. 6 illustrates a prior art USB keyboard with additional extensions, according to one embodiment.

DETAILED DESCRIPTION

In the following description, numerous specific details are set forth. However, it is understood that embodiments of the invention may be practiced without these specific details. In other instances, well-known circuits, structures and techniques have not been shown in detail in order not to obscure the understanding of this description.

Reference throughout the specification to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the present invention. Thus, the appearance of the phrases “in one embodiment” or “in an embodiment” in various places throughout the specification are not necessarily all referring to the same embodiment. Furthermore, the particular features, structures, or characteristics may be combined in any suitable manner in one or more embodiments.

Similarly, it should be appreciated that in the foregoing description of exemplary embodiments of the invention, various features of the invention are sometimes grouped together in a single embodiment, figure, or description thereof for the purpose of streamlining the disclosure and aiding in the understanding of one or more of the various inventive aspects. This method of disclosure, however, is not to be interpreted as reflecting an intention that the claimed invention requires more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive aspects lie in less than all features of a single foregoing disclosed embodiment. Thus, the claims following the Detailed Description are hereby expressly incorporated into this Detailed Description, with each claim standing on its own as a separate embodiment of this invention.

The virtual hub function is a component of the novel art of this disclosure. Said virtual hub represents the MFC and the keyboard in the current example as two USB entities connected to a hub; however, the physical hub is eliminated, resulting in a less costly approach.

FIG. 3 is an overview block diagram of chip 200 as described in this embodiment. Chip 200 as shown in FIG. 3 contains typical elements of a normal embedded microcontroller. Of relevance to the novel art of this disclosure is USB interface section 301, the parallel I/O section 302, and the CPU 303. Also present are other functions often found in embedded microcontrollers.

FIG. 4 shows a simplified diagram of the functional process of the virtual hub. After initiation at step 401, the hub must be configured by software. This configuration step 402 may require repetitive attempts until the host CPU is ready to communicate with the hub and provide the configuration parameters. Once that step has been passed, in step 403 the flash media drive or flash card controller is brought online. In step 404, the drive or controller looks to see if any valid medium is present, and, if so, it configures the medium accordingly. Note that No Medium is also considered a valid configuration. Once the medium is configured, in step 405 the keyboard is brought online as an additional virtual USB device. After these steps, the initialization is complete, and normal operation commences at step 406.

FIG. 6 shows a conventional approach for a keyboard with an FMD, using three SIEs and three controllers, as a way used in current art to implement the same functionality, but at a much higher cost.

FIG. 5 shows host computer system 101 with port 103 connected through USB link 104 to USB port 205 of chip 500. Chip 500 is yet another embodiment, in this case with a more hybrid type of configuration. It contains a real hub function, multi flash interface 510, interface 511, and potentially additional auxiliary interfaces 512 a-n. In some cases the interface 511 may not be implemented, but other auxiliary functions may. Such auxiliary functions may include analog and digital functions such as controlling or measuring voltages.

In one embodiment, interface 511 is chosen from one of a human interface device, a secure channel, a video capture device, a printer device, a scanner device, a wireless class device. The human interface device provides an interface to a user and includes such devices as keyboard, mouse, joy stick, game pad, touch pad, biometric sensor, and so on. The secure channel may comprise of an authentication scheme using hash algorithms and optionally includes a challenge/response method to make the process robust. The Hash algorithms may comprise of one among a set consisting of MD5, SHA-1, SHA-256, SHA-384, SHA-512, HMAC-MD5, HMAC-SHA1. The wireless class device supports a wireless protocol and may be for instance, a device supporting the Wi-Fi Wireless protocol comprising of IEEE Standards 802.11a, 802.11b, 802.11e, 802.11g, a device supporting the Blue tooth protocol, or a device supporting the Wireless USB protocol.

In this case the hub controller 502 is implemented using cross switches XC 501 a-n (as is normally done in hubs). These switches 501 a-n help the hub controller 502 to control the connectivity through its control lines to each of the cross switches. Two of the cross switches in this example are passed through as ports 520 a-n to use for other (external) USB devices. Novel, however, is the use of a single SIE 503 for multiple internal functions. From SIE 503 the signals go into embedded controller 504, which controls the multifunction connector 510, the keyboard connector 511, and additional connectors 512 a-n, as described above.

Those additional connectors can be used for other, additional functions to be integrated. In some instances, the pins used for the keyboard matrix may be used for other functions, depending on what kind of device or system the chip 500 is integrated. In some cases hub controller 502 and interface controller 504 are one and the same microcontroller, in some cases the hub controller is an intelligent peripheral to interface controller 504, and in some cases they are two separate microcontrollers communicating with each other. In yet other cases, hub controller 502 may have its own SIE, and interface controller 504 may also have its own SIE.

In some embodiments the hub controller 502 and the embedded controller 504 may share one CPU. In other embodiments, they may be separated, with the hub controller embodied entirely in hardware to provide sufficient speed for enhanced standards such as USB 2.0, etc.

While the invention has been described in terms of several embodiments, those skilled in the art will recognize that the invention is not limited to the embodiments described, but can be practiced with modification and alteration within the spirit and scope of the appended claims. The description is thus to be regarded as illustrative instead of limiting. 

1-20. (canceled)
 21. A method of emulating a hub having multiple ports, the method comprising: transferring data with a separate host; transferring data between one serial interface engine (SIE) and a first interface; and transferring data between the one serial interface engine and a second interface.
 22. The method of claim 21, wherein the first interface unit is a keyboard interface.
 23. The method of claim 21, wherein the second interface unit is a flash media drive interface.
 24. The method of claim 21, wherein the one serial interface engine, the first interface, and the second interface is housed within a keyboard.
 25. The method of claim 21, wherein the method is performed by a Universal Serial Bus (USB) peripheral.
 26. The method of claim 21, wherein the serial interface engine is connected to a controller, and the first interface unit and the second interface unit are connected to the controller.
 27. The method of claim 21, wherein the method further comprises transferring data between the serial interface unit and a third interface unit.
 28. The method of claim 21, wherein the serial interface engine (SIE), the first interface unit, and the second interface unit are integrated on a single device.
 29. A method of interconnecting a plurality of ports to a host USB interface, comprising: providing a firmware unit connected to a plurality of ports and to a host USB interface; and emulating in said firmware unit a hub having a plurality of ports.
 30. The method of claim 29 wherein the emulating step comprises representing the ports as USB entities.
 31. The method of claim 29 wherein at least one of the ports comprises a serial interface.
 32. The method of claim 29 further comprising providing one serial interface engine connected between said firmware unit and at least two of said ports.
 33. The method of claim 29 wherein said ports are selected from a group comprising: a human interface device, a secure channel device, a video capture device, a printer device, a scanner device, and a wireless class device.
 34. The method of claim 33 wherein a secure channel device comprises hash algorithms.
 35. The method of claim 34 wherein the hash algorithms are selected from a group consisting of MD5, SHA-1, SHB-256, SHA-384, SHA-512, HMAC-MD5, HMAC-SHA1.
 36. The method of claim 33 wherein the wireless class device supports a wireless protocol selected from a group consisting of a 802 standard, Bluetooth and wireless USB.
 37. The method of claim 36 wherein the 802 standard wireless protocol is selected from a group consisting of 802.11a, 802.11b, 802.11e, 802.11g.
 38. A method emulating a USB hub, comprising: providing a controller connected to a plurality of interface units and to a host USB interface; and emulating in said controller that said interface units are a plurality of ports.
 39. The method of claim 38 wherein the emulating step comprises representing interfaces units as USB entities.
 40. The method of claim 38 wherein at least one of the interface units comprises a serial interface.
 41. The method of claim 38 further comprising providing one serial interface engine connected between said controller and at least two of said interface units.
 42. The method of claim 38 wherein interface units are selected from a group comprising: a human interface device, a secure channel device, a video capture device, a printer device, a scanner device, and a wireless class device.
 43. The method of claim 42 wherein a secure channel device comprises hash algorithms.
 44. The method of claim 43 wherein the hash algorithms are selected from a group consisting of MD5, SHA-1, SHB-256, SHA-384, SHA-512, HMAC-MD5, HMAC-SHA1.
 45. The method of claim 42 wherein the wireless class device supports a wireless protocol selected from a group consisting of a 802 standard, Bluetooth and wireless USB.
 46. The method of claim 45 wherein the 802 standard wireless protocol is selected from a group consisting of 802.11a, 802.11b, 802.11e, 802.11g.
 47. A method emulating a USB hub, comprising: providing a controller connected to a plurality of serial interface units and to a host USB interface; and emulating in said controller that said interface units are a plurality of USB entities.
 48. A method emulating a USB hub, comprising: providing a controller connected to a plurality of interface units and to a host USB interface; and emulating in said controller that said interface units are USB entities. 